package com.easyj.admin.edu.service;

import java.util.List;
import com.easyj.base.exception.EasyjException;
import com.easyj.base.common.page.Page;
import com.easyj.admin.activiti.vo.SimpleApproveVO;
import com.easyj.admin.db.model.Leave;
import com.easyj.admin.db.model.LeaveQO;
import com.easyj.admin.db.model.TaskComment;

public interface LeaveService {
	public final static String  ProcessDefKey="leave"; //流程定义Key
	public final static String  ApproveTaskKey="leaveAprove"; //审批任务定义Key
		

	public Page<Leave> findPage(LeaveQO filter);

   	public List<Leave> findList(LeaveQO filter);
		
    public long count(LeaveQO filter);

	public Leave findById(Long id);

	public int  apply(Leave entity) throws EasyjException;	
	
	public void approve(SimpleApproveVO approveVO) throws EasyjException;
	
	public void auditApply(SimpleApproveVO approveVO) throws EasyjException;
	
	public int  updateEntity(Leave entity) throws EasyjException;

	public int  cancel(Long id) throws EasyjException;

	public List<TaskComment> findCommentsById(Long entityId);
}
